nethackfandomcom-20200214-history
Source:SLASH'EM 0.0.7E7F2/pcconf.h
Below is the full text to pcconf.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/pcconf.h#line123]], for example. The latest source code for vanilla NetHack is at Source code. 1. /* SCCS Id: @(#)pcconf.h 3.4 1995/10/11 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef PCCONF_H 6. #define PCCONF_H 7. 8. #define MICRO /* always define this! */ 9. 10. #ifdef MSDOS /* some of this material is MS-DOS specific */ 11. 12. /* 13. * Automatic Defines: 14. * 15. * __GO32__ is defined automatically by the djgpp port of gcc. 16. * __DJGPP__ is defined automatically by djgpp version 2 and above. 17. * _MSC_VER is defined automatically by Microsoft C. 18. * __BORLANDC__ is defined automatically by Borland C. 19. * __SC__ is defined automatically by Symantec C. 20. * Note: 3.4.1 was not verified with Symantec C. 21. */ 22. 23. /* 24. * The following options are somewhat configurable depending on 25. * your compiler. 26. */ 27. 28. /* 29. * For pre-V7.0 Microsoft Compilers only, manually define OVERLAY here. 30. */ 31. 32. /* #define OVERLAY */ /* Manual overlay definition (MSC 6.0ax only) */ 33. 34. # ifndef __GO32__ 35. # define MFLOPPY /* Support for floppy drives and ramdisks by dgk */ 36. # endif 37. 38. /* Tom trying to make this work with WATCOM */ 39. #if 0 40. # define NO_SIGNAL 41. # undef MOVERLAY 42. #endif 43. 44. # define SHELL /* via exec of COMMAND.COM */ 45. 46. # ifdef __BORLANDC__ 47. #define PCMUSIC /* enable very basic pc speaker music notes */ 48. # endif 49. 50. /* 51. * Screen control options 52. * 53. * You may uncomment: 54. * ANSI_DEFAULT 55. * or TERMLIB 56. * or ANSI_DEFAULT and TERMLIB 57. * or NO_TERMS 58. */ 59. 60. /* # define TERMLIB */ /* enable use of termcap file /etc/termcap */ 61. /* or ./termcap for MSDOS (SAC) */ 62. /* compile and link in Fred Fish's termcap library, */ 63. /* enclosed in TERMCAP.ARC, to use this */ 64. 65. /* # define ANSI_DEFAULT */ /* allows NetHack to run without a ./termcap */ 66. 67. # define NO_TERMS /* Allows Nethack to run without ansi.sys by linking */ 68. /* screen routines into the .exe */ 69. 70. # ifdef NO_TERMS /* if NO_TERMS select one screen package below */ 71. #define SCREEN_BIOS /* Use bios calls for all screen control */ 72. /* #define SCREEN_DJGPPFAST */ /* Use djgpp fast screen routines */ 73. # endif 74. 75. 76. /* # define PC9800 */ /* Allows NetHack to run on NEC PC-9800 machines */ 77. /* Yamamoto Keizo */ 78. 79. 80. /* 81. * PC video hardware support options (for graphical tile support) 82. * 83. * You may uncomment any/all of the options below. 84. * 85. */ 86. # ifndef SUPPRESS_GRAPHICS 87. # if (defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST)) && !defined(PC9800) 88. # ifdef USE_TILES 89. #define SCREEN_VGA /* Include VGA graphics routines in the build */ 90. #define ALLEG_FX /* Use Allegro libraries */ 91. # endif 92. # endif 93. # else 94. # undef NO_TERMS 95. # undef SCREEN_BIOS 96. # undef SCREEN_DJGPPFAST 97. # undef SCREEN_VGA 98. # undef TERMLIB 99. # define ANSI_DEFAULT 100. # endif 101. 102. # define RANDOM /* have Berkeley random(3) */ 103. 104. # define MAIL /* Allows for fake mail daemon to deliver mail */ 105. /* in the MSDOS version. (For AMIGA MAIL see */ 106. /* amiconf.h). In the future this will be the */ 107. /* hook for mail reader implementation. */ 108. 109. /* The following is needed for prototypes of certain functions */ 110. 111. #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__SC__) 112. #include /* Provides prototypes of exit(), spawn() */ 113. #endif 114. 115. #if defined(__BORLANDC__) && defined(STRNCMPI) 116. #include /* Provides prototypes of strncmpi(), etc. */ 117. #endif 118. 119. #if defined(__DJGPP__) 120. #define _NAIVE_DOS_REGS 121. #include 122. #include /* Provides prototypes of strncmpi(), etc. */ 123. # ifndef M 124. #define M© ((char) (0x80 | ©)) 125. # endif 126. #endif 127. 128. /* 129. * On the VMS and unix, this option controls whether a delay is done by 130. * the clock, or whether it is done by excess output. On the PC, however, 131. * there is always a clock to use for the delay. The TIMED_DELAY option 132. * on MSDOS (without the termcap routines) is used to determine whether to 133. * include the delay routines in the code (and thus, provides a compile time 134. * method to turn off napping for visual effect). However, it is also used 135. * in the music code to wait between different notes. So it is needed in that 136. * case as well. 137. 138. * Whereas on the VMS and unix, flags.nap is a run-time option controlling 139. * whether there is a delay by clock or by excess output, on MSDOS it is 140. * simply a flag to turn on or off napping for visual effects at run-time. 141. */ 142. 143. #define TIMED_DELAY /* enable the `timed_delay' run-time option */ 144. 145. # ifdef PCMUSIC 146. #define TIMED_DELAY /* need it anyway */ 147. # endif 148. #define NOCWD_ASSUMPTIONS /* Allow paths to be specified for HACKDIR, 149. LEVELDIR, SAVEDIR, BONESDIR, DATADIR, 150. SCOREDIR, LOCKDIR, CONFIGDIR, and TROUBLEDIR. */ 151. 152. #endif /* MSDOS configuration stuff */ 153. 154. #define PATHLEN 64 /* maximum pathlength */ 155. #define FILENAMELEN 80 /* maximum filename length (conservative) */ 156. #ifndef MICRO_H 157. #include "micro.h" /* contains necessary externs for os_name.c */ 158. #endif 159. 160. 161. /* = 162. * The remaining code shouldn't need modification. 163. */ 164. 165. #ifndef SYSTEM_H 166. #include "system.h" 167. #endif 168. 169. #ifdef __DJGPP__ 170. #include /* close(), etc. */ 171. /* lock() in io.h interferes with lock[] in decl.h */ 172. #define lock djlock 173. #include 174. #undef lock 175. #include /* kbhit() */ 176. #define PC_LOCKING 177. #define HOLD_LOCKFILE_OPEN 178. #define SELF_RECOVER /* NetHack itself can recover games */ 179. #endif 180. 181. # ifdef MSDOS 182. # ifndef EXEPATH 183. #define EXEPATH /* HACKDIR is .exe location if not explicitly defined */ 184. # endif 185. # endif 186. 187. # if defined(_MSC_VER) && defined(MSDOS) 188. # if (_MSC_VER >= 700) && !defined(FUNCTION_LEVEL_LINKING) 189. # ifndef MOVERLAY 190. #define MOVERLAY /* Microsoft's MOVE overlay system (MSC >= 7.0) */ 191. # endif 192. # endif 193. #define PC_LOCKING 194. # endif 195. 196. /* Borland Stuff */ 197. # if defined(__BORLANDC__) 198. # if defined(__OVERLAY__) && !defined(VROOMM) 199. /* __OVERLAY__ is automatically defined by Borland C if overlay option is on */ 200. #define VROOMM /* Borland's VROOMM overlay system */ 201. # endif 202. # if !defined(STKSIZ) 203. #define STKSIZ 5*1024 /* Use a default of 5K stack for Borland C */ 204. /* This macro is used in any file that contains */ 205. /* a main() function. */ 206. # endif 207. #define PC_LOCKING 208. # endif 209. 210. #ifdef PC_LOCKING 211. #define HLOCK "NHPERM" 212. #endif 213. 214. #ifndef index 215. # define index strchr 216. #endif 217. #ifndef rindex 218. # define rindex strrchr 219. #endif 220. 221. #ifndef AMIGA 222. #include 223. #endif 224. 225. #ifdef RANDOM 226. /* Use the high quality random number routines. */ 227. # define Rand() random() 228. #else 229. # define Rand() rand() 230. #endif 231. 232. #ifndef TOS 233. # define FCMASK 0660 /* file creation mask */ 234. #endif 235. 236. #include 237. 238. #ifndef REDO 239. # undef Getchar 240. # define Getchar nhgetch 241. #endif 242. 243. #ifdef MSDOS 244. # define TEXTCOLOR /* */ 245. # define PORT_HELP "msdoshlp.txt" /* msdos port specific help file */ 246. #endif 247. 248. 249. /* Sanity check, do not modify these blocks. */ 250. 251. /* OVERLAY must be defined with MOVERLAY or VROOMM */ 252. #if (defined(MOVERLAY) || defined(VROOMM)) 253. # ifndef OVERLAY 254. # define OVERLAY 255. # endif 256. #endif 257. 258. #if defined(FUNCTION_LEVEL_LINKING) 259. #define OVERLAY 260. #define OVL0 261. #define OVL1 262. #define OVL2 263. #define OVL3 264. #define OVLB 265. #endif 266. 267. #if defined(OVERLAY) && !defined(MOVERLAY) && !defined(VROOMM) && !defined(FUNCTION_LEVEL_LINKING) 268. #define USE_TRAMPOLI 269. #endif 270. 271. #if defined(MSDOS) && defined(NO_TERMS) 272. # ifdef TERMLIB 273. # if defined(_MSC_VER) || defined(__SC__) 274. # pragma message("Warning -- TERMLIB defined with NO_TERMS in pcconf.h") 275. # pragma message(" Forcing undef of TERMLIB") 276. # endif 277. #undef TERMLIB 278. # endif 279. # ifdef ANSI_DEFAULT 280. # if defined(_MSC_VER) || defined(__SC__) 281. # pragma message("Warning -- ANSI_DEFAULT defined with NO_TERMS in pcconf.h") 282. # pragma message(" Forcing undef of ANSI_DEFAULT") 283. # endif 284. #undef ANSI_DEFAULT 285. # endif 286. /* only one screen package is allowed */ 287. # if defined(SCREEN_BIOS) && defined(SCREEN_DJGPPFAST) 288. # if defined(_MSC_VER) || defined(__SC__) 289. # pragma message("Warning -- More than one screen package defined in pcconf.h") 290. # endif 291. # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__SC__) 292. # if defined(SCREEN_DJGPPFAST) 293. # if defined(_MSC_VER) || defined(__SC__) 294. # pragma message(" Forcing undef of SCREEN_DJGPPFAST") 295. # endif 296. #undef SCREEN_DJGPPFAST /* Can't use djgpp fast with other compilers anyway */ 297. # endif 298. # else 299. /* djgpp C compiler */ 300. # if defined(SCREEN_BIOS) 301. #undef SCREEN_BIOS 302. # endif 303. # endif 304. # endif 305. # define ASCIIGRAPH 306. # ifdef TEXTCOLOR 307. # define VIDEOSHADES 308. # endif 309. /* SCREEN_8514, SCREEN_VESA are only placeholders presently - sub VGA instead */ 310. # if defined(SCREEN_8514) || defined(SCREEN_VESA) 311. # undef SCREEN_8514 312. # undef SCREEN_VESA 313. # define SCREEN_VGA 314. # endif 315. /* Graphical tile sanity checks */ 316. # if defined(SCREEN_VGA) || defined(ALLEG_FX) 317. # define SIMULATE_CURSOR 318. # define POSITIONBAR 319. /* Select appropriate tile file format, and map size */ 320. # define PLANAR_FILE 321. # define SMALL_MAP 322. # endif 323. #endif /* End of sanity check block */ 324. 325. #if defined(MSDOS) && defined(DLB) 326. #define FILENAME_CMP stricmp /* case insensitive */ 327. #endif 328. 329. #ifdef MSC7_WARN /* define with cl /DMSC7_WARN */ 330. #pragma warning(disable:4131) 331. #endif 332. 333. #ifdef TIMED_DELAY 334. # ifdef __DJGPP__ 335. # define msleep(k) (void) usleep((k)*1000) 336. # endif 337. # ifdef __BORLANDC__ 338. # define msleep(k) delay(k) 339. # endif 340. # ifdef __SC__ 341. # define msleep(k) (void) usleep((long)((k)*1000)) 342. # endif 343. #endif 344. 345. #endif /* PCCONF_H */ pcconf.h